In present packet-switched network architectures, data is transmitted in the form of network packets between networked computing devices. At a high level, data is collected and packetized into a network packet, which is then sent to a transmission device (e.g., a network interface controller (NIC) of the respective networked computing device) responsible for dispatching the network packet to a target computing device over a network. Some such networked computing devices maintain statistics of the network traffic received by and/or transmitted from the computing device via a number of network statistic counters. For example, the network statistic counters can be used to track the number of arrivals of a particular network packet type, event, or flow. As such, the value of the statistic counters can be used to monitor performance and/or security of the computing device, as well as influence network management and network traffic engineering decisions.
Typically, network statistic counters are implemented via on-die memory and maintained by hardware. Generally, to obtain the counter values, a software application polls the statistic counters via a register read. However, certain deployment environments, such as those deployment environments in which millions of statistic counters may be required, can result in a large die size, which may effectively render the design unscalable.